package cn.edu.wynu.springbootlearn.controller;

import cn.edu.wynu.springbootlearn.bean.Movie;
import cn.edu.wynu.springbootlearn.service.MovieService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

// @RestController = @ResponseBody + @Controller：作用是标识该类是一个控制器，
// 控制器会被spring容器加载，而且返回的对象会被转义为json
@RestController
@RequestMapping("/movies")
public class MovieController {

    // 自动注入：从ioc容器中根据类型找到一个MovieService类的对象，并且注入到controller对象里面
    @Autowired
    MovieService movieService;

    // get请求一般用来查询数据
    @GetMapping("/{id}")
    public Movie selectMovieById(@PathVariable Integer id) {
        System.out.println("浏览器传过来的id为:" + id);
        return movieService.queryMovieById(id);
    }

    @GetMapping("/")
    public List<Movie> selectAllMovie() {
        return movieService.queryAllMovie();
    }

    // @RequestBody前端传过来的数据，我们需要使用这个注解来标识，post请求一般用来新增数据
    @PostMapping("/")
    public String addMovie(@RequestBody Movie movie) {
        System.out.println(movie);
        return "success";
    }


    /**
     * 通过id更新电影信息
     * @param movie 电影信息
     * @param id id
     * @return success
     */
    @PutMapping("/{id}")
    public String updateMovie(@RequestBody Movie movie,@PathVariable Integer id) {
        System.out.println(movie);
        System.out.println(id);
        movie.setId(id);
        return movieService.updateMovie(movie);
    }

    @DeleteMapping("/{id}")
    public String deleteMovie(@PathVariable String id) {
        System.out.println("成功删除id为：" + id + "的电影");
        return "success";
    }
}
